#! /bin/bash
HIVE_HOME=/usr/bin/hive

${HIVE_HOME} -S -e "
create database if not exists oe_rpt;
-- 赵宗尧
create table if not exists oe_rpt.rpt_normal_signin(
    -- 维度
    class_id string comment '班级id',
    class_date string comment '上课时间 "上课时间段"',
    period string comment '早中晚粒度，字段值格式：m（morning），a（afternoon），e（evening）',
    -- 指标
    normal_signin_cnt bigint comment '正常出勤人数',
    normal_signin_rate decimal(5,2) comment '正常出勤率',

    dt string comment '记录'
)comment '每天每班各时间段出勤分析';

-- 赵宗尧
create table if not exists oe_rpt.rpt_late_signin(
    -- 维度
    class_id string comment '班级id',
    class_date string comment '上课时间 "上课时间段"',
    period string comment '早中晚粒度，字段值格式：m（morning），a（afternoon），e（evening）',
    -- 指标
    late_signin_cnt bigint comment '迟到人数',
    late_signin_rate decimal(5,2) comment '迟到率',

    dt string comment '记录'
)comment '每天每班各时间段迟到分析';

-- 赵宗尧
create table if not exists oe_rpt.rpt_leave(
    -- 维度
    class_id string comment '班级id',
    class_date string comment '上课时间 "上课时间段"',
    period string comment '早中晚粒度，字段值格式：m（morning），a（afternoon），e（evening）',
    -- 指标
    leave_cnt bigint comment '请假人数',
    leave_rate decimal(5,2) comment '请假率',

    dt string comment '记录'
)comment '每天每班各时间段请假分析';

-- 赵宗尧
create table if not exists oe_rpt.rpt_absent(
    -- 维度
    class_id string comment '班级id',
    class_date string comment '上课时间 "上课时间段"',
    period string comment '早中晚粒度，字段值格式：m（morning），a（afternoon），e（evening）',
    -- 指标
    absent_cnt bigint comment '旷课人数',
    absent_rate decimal(5,2) comment '旷课率',

    dt string comment '记录'
)comment '每天每班各时间段旷课分析';
"

PRESTO_HOME=/export/server/presto/bin/presto


${PRESTO_HOME} --catalog hive --server hadoop01:8090 --execute "
-- 赵宗尧
-- 每天每班各时间段出勤分析
insert into oe_rpt.rpt_normal_signin
select
    class_id,
    class_date,
    period,
    normal_signin_cnt,
    normal_signin_rate,
    '2024-08-23' as dt
from oe_dws.dws_teach_periodcnt
where normal_signin_cnt <> 0
order by class_date,class_id;
-- 赵宗尧
--每天每班各时间段迟到分析
insert into oe_rpt.rpt_late_signin
select
    class_id,
    class_date,
    period,
    late_signin_cnt,
    late_signin_rate,
    '2024-08-23' as dt
from oe_dws.dws_teach_periodcnt
where late_signin_cnt <> 0
order by class_date,class_id;
-- 赵宗尧
--每天每班各时间段请假分析
insert into oe_rpt.rpt_leave
select
    class_id,
    class_date,
    period,
    leave_cnt,
    leave_rate,
    '2024-08-23' as dt
from oe_dws.dws_teach_periodcnt
where late_signin_cnt <> 0 and late_signin_rate <> 0
order by class_date,class_id;
-- 赵宗尧
--每天每班各时间段旷课分析
insert into oe_rpt.rpt_absent
select
    class_id,
    class_date,
    period,
    absent_cnt,
    absent_rate,
    '2024-08-23' as dt
from oe_dws.dws_teach_periodcnt
where absent_cnt <> 0 and absent_rate <> 0
order by class_date,class_id;
"